]> dgit.raspbian.org Git - gnome-shell.git/log
gnome-shell.git
3 years agopanel: Remove the appMenu indicator
Jonas Dreßler [Mon, 23 Jan 2023 15:22:03 +0000 (16:22 +0100)]
panel: Remove the appMenu indicator

Over time the app menu has proved to be an issue and lately there has been
some movement to fix that (see also
https://gitlab.gnome.org/Teams/Design/os-mockups/-/issues/198).

As a first step, let's stop showing the indicator (not removing the code
yet) so that we can iterate on a more elegant solution.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/2610>

3 years agoscreencastService: Add dmabuf/GL pipeline
robert.mader@collabora.com [Sat, 11 Feb 2023 06:06:14 +0000 (07:06 +0100)]
screencastService: Add dmabuf/GL pipeline

This pipeline imports dmabufs and does format conversion using GL.
The `video/x-raw(memory:DMABuf)` filter ensures format negotiation
between `pipewiresrc` and Mutter will only succeed if Mutter advertises
dmabuf support as well, falling back to the next pipeline otherwise.

Using this pipeline frees Mutter from downloading buffer content on the
main thread which can have a big impact on compositor performance.
Doing format conversion on the GPU should further improve the overall
performance on most hardware.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/2597>

3 years agoscreenshot: Also handle dbus service crashes
Jonas Dreßler [Wed, 26 Apr 2023 11:27:38 +0000 (13:27 +0200)]
screenshot: Also handle dbus service crashes

When the screencast dbus service crashes due to gstreamer, we should also
handle that and not pretend to continue recording.

Let's listen to g-name-owner changes for that and then also send a
notification about it.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/2752>

3 years agoscreenshot: Handle screencast errors properly
Jonas Dreßler [Wed, 26 Apr 2023 10:34:17 +0000 (12:34 +0200)]
screenshot: Handle screencast errors properly

Send a notification and remove the screencast inidicator when we hear about
a screencast error from the dbus service.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/2752>

3 years agoscreencastService: Signal errors via the internal dbus interface
Jonas Dreßler [Wed, 26 Apr 2023 10:29:57 +0000 (12:29 +0200)]
screencastService: Signal errors via the internal dbus interface

Make sure gnome-shell gets notified of errors that happen during screen
recording using the screencastService, so that it can properly notify the
user about the error and tear down its state, too.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/2752>

3 years agoscreencastService: Do not try multiple pipelines on old Pipewire versions
robert.mader@collabora.com [Mon, 20 Feb 2023 17:27:32 +0000 (18:27 +0100)]
screencastService: Do not try multiple pipelines on old Pipewire versions

Pipewire versions < 0.3.67 may not fail immediatly on negotiation
errors, thus use the last/fallback pipeline directly.
Technically, a similar recent version of Wireplumber is required
as well, but we can't check that easily and the combination of old
Wireplumber and new Pipewire is quite unlikely.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/2609>

3 years agoscreencastService: Add fallback mechanism for gstreamer pipelines
Jonas Dreßler [Fri, 28 Jan 2022 23:51:31 +0000 (00:51 +0100)]
screencastService: Add fallback mechanism for gstreamer pipelines

Introduce a fallback mechanism for gstreamer pipelines that allows to
define multiple pipelines and prefer them over each other.

The way this works is that we introduce a new STARTING PipelineState.
While the Recorder is in that state, it is allowed to tear down the
current pipeline and start another one whenever an error happens, this is
used to try multiple pipelines in a fixed order until a working one is
found.

Right now there's just a single pipeline using the existing vp8 encoder, the
actual new encoders and pipelines will be added in a separate commit.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/2609>

3 years agoscreencastService: Drop always-copy condition
robert.mader@collabora.com [Mon, 20 Feb 2023 17:07:23 +0000 (18:07 +0100)]
screencastService: Drop always-copy condition

The check for the Pipewire version was originally introduced in
d32c0348 which states:
> Since it is not clear yet when a proper solution will arrive,
> this makes use of `always-copy` as a workaround for now and
> should be reverted once it is no longer needed.

The check for a stable Gstreamer version with the mention proper fix was
introduced in d7b44319 and carried for the 43 cycle.

By the time Gnome 44 will be released all distros should have had enough
time to update their Gstreamer version - or backport the patches, in
case of not ustream-supported versions.

Thus lets drop it now.

Note: `always-copy` is not suitable for dmabuf buffers as it copies via
mmap.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/2609>

3 years agoscreencastService: Set PipelineState to PLAYING on actual state-change
Jonas Dreßler [Thu, 3 Feb 2022 10:26:59 +0000 (11:26 +0100)]
screencastService: Set PipelineState to PLAYING on actual state-change

Right now when we tell gstreamer to move the pipeline to the state
PLAYING, we pretend that happens immediately and set our PipelineState
to PLAYING right afterwards.

In reality though it's more complicated than that: Gstreamer changes
states asynchronously and set_state() returns a Gst.StateChangeReturn.ASYNC.
In that case we should wait until the according STATE_CHANGED event happens
on the bus, and only then set our PipelineState to PLAYING.

Since the STATE_CHANGED event will also happen when set_state() returns
SUCCESS, we can use the same async logic for that.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/2197>

3 years agoscreencastService: Handle more gstreamer errors
Jonas Dreßler [Fri, 28 Jan 2022 23:40:24 +0000 (00:40 +0100)]
screencastService: Handle more gstreamer errors

Gstreamer can produce various errors, we shouldn't pretend those don't
exist and go on as usual when one happens. Instead, when an error
happens, tear down the pipeline, set our PipelineState to the new ERROR
state and bail out with a proper error message.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/2197>

3 years agoscreencastService: Streamline teardown and error handling
Jonas Dreßler [Fri, 28 Jan 2022 22:50:35 +0000 (23:50 +0100)]
screencastService: Streamline teardown and error handling

We're tracking three different state-machines in the Recorder object:
The state of the gstreamer pipeline, the state of the screencast
session, and the sender of our dbus invocation that might vanish.

Properly handling errors that might appear in any of those three "black
boxes" is not easy, especially tearing down the other two when one of
them breaks.

So refactor the error handling here: Add a single error path for each of
those three states we're tracking, and make them all subsequently call
the _bailOutOnError() method. From there we tear down the other states and
call the error callbacks.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/2197>

3 years agoscreencastService: Add an ERROR state for the pipeline state tracking
Jonas Dreßler [Fri, 28 Jan 2022 23:31:15 +0000 (00:31 +0100)]
screencastService: Add an ERROR state for the pipeline state tracking

This will be useful when we start actually listening for ERROR events on
the gstreamer bus.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/2197>

3 years agoscreencastService: Use strings for states
Jonas Dreßler [Fri, 28 Jan 2022 23:31:00 +0000 (00:31 +0100)]
screencastService: Use strings for states

Using strings instead of numbers allows for easier debugging, it means
we can just log the state itself.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/2197>

3 years agoscreencastService: Promisify Recorder start/stopRecording functions
Jonas Dreßler [Thu, 3 Feb 2022 10:10:36 +0000 (11:10 +0100)]
screencastService: Promisify Recorder start/stopRecording functions

This will allow for cleaner error handling in the following commits.

A benefit we get from it right now is having one less callback when
calling startRecording/stopRecording().

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/2197>

3 years agostatus/bluetooth: Use 'Alias' for item labels
Florian Müllner [Sun, 23 Apr 2023 19:10:40 +0000 (21:10 +0200)]
status/bluetooth: Use 'Alias' for item labels

Unlike 'Name', the 'Alias' property can be changed by the user,
so it's more suitable for user-visible labels.

https://gitlab.gnome.org/GNOME/gnome-shell/-/issues/6626

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/2751>

3 years agoportalHelper: Use libadwaita instead of plain Gtk4
Florian Müllner [Wed, 8 Mar 2023 22:20:20 +0000 (23:20 +0100)]
portalHelper: Use libadwaita instead of plain Gtk4

This gives us the proper platform stylesheet, as well as support
for dark style and other platform features.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/2690>

3 years agoportalHelper: Stop using a subtitle
Florian Müllner [Wed, 8 Mar 2023 21:53:22 +0000 (22:53 +0100)]
portalHelper: Stop using a subtitle

The pattern has become a lot less common, not least indicated
by the removal of the HeaderBar:subtitle property. And in this
case we are including an icon in the subtitle, which looks
completely out of place.

Address this by moving the URL/security information into a
popover menu, inspired by the similar drop-down in GNOME Web.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/2690>

3 years agoportalHelper: Port to Gtk4/WebKit6
Florian Müllner [Wed, 8 Mar 2023 18:25:04 +0000 (19:25 +0100)]
portalHelper: Port to Gtk4/WebKit6

WebKit was blocking the portal helper from being ported to Gtk4
together with other external tools. Now that WebKit6 is about to
become stable, the port can go ahead.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/2690>

3 years agoportalHelper: Don't use deprecated API during policy decision
Florian Müllner [Wed, 8 Mar 2023 19:03:40 +0000 (20:03 +0100)]
portalHelper: Don't use deprecated API during policy decision

NavigationPolicyDecision.get_request() is deprecated, and the
method from the corresponding NavigationAction should be used
instead.

Rearrange the code to do that.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/2690>

3 years agoportalHelper: Adjust coding style
Florian Müllner [Wed, 8 Mar 2023 18:51:54 +0000 (19:51 +0100)]
portalHelper: Adjust coding style

Most of the file already complies with the new style. Quickly change
the last remaining bits of legacy style before making further changes.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/2690>

3 years agoportalHelper: Stop monkey-patching String.format()
Florian Müllner [Wed, 8 Mar 2023 18:40:01 +0000 (19:40 +0100)]
portalHelper: Stop monkey-patching String.format()

It's not used, so no need to set it up.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/2690>

3 years agoportalHelper: Remove pointless destroyWindow() method
Florian Müllner [Wed, 8 Mar 2023 18:27:27 +0000 (19:27 +0100)]
portalHelper: Remove pointless destroyWindow() method

Years ago, the function used to clean up the cache when the
window was closed. But now that an ephemeral data manager is
used, nothing is cached anymore and the function is left as
a mere wrapper around this.destroy().

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/2690>

3 years agoscreenshot: Use independent tooltips for the Screenshot/Screencast buttons
Automeris naranja [Mon, 6 Mar 2023 22:44:43 +0000 (19:44 -0300)]
screenshot: Use independent tooltips for the Screenshot/Screencast buttons

Fixes https://gitlab.gnome.org/GNOME/gnome-shell/-/issues/6189

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/2683>

3 years agoenvironment: Remove old compatibility code
Florian Müllner [Wed, 5 Apr 2023 15:27:21 +0000 (17:27 +0200)]
environment: Remove old compatibility code

St.set_slow_down_factor() has been deprecated for over 3 years
(since 3.34). That's plenty of time for extensions to switch to
St.Settings.get().slow_down_factor.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/2743>

3 years agostatus/backgroundApps: Show spinner when closing
Florian Müllner [Tue, 11 Apr 2023 13:29:55 +0000 (15:29 +0200)]
status/backgroundApps: Show spinner when closing

It can take a little while for an app to quit after the user
clicked the close button, and another for the portal to pick
up the change.

In order to provide feedback to the user that the request is
being handled, replace the close button with a spinner.

https://gitlab.gnome.org/GNOME/gnome-shell/-/issues/6441

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/2732>

3 years agoworkspaceThumbnail: Use click action
Florian Müllner [Thu, 20 Apr 2023 01:30:04 +0000 (03:30 +0200)]
workspaceThumbnail: Use click action

Now that we have a convenient way of combining a draggable with
a click action, we can port the code without making it more
complicated.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/2742>

3 years agodnd: Add addClickAction() method
Florian Müllner [Thu, 20 Apr 2023 10:26:23 +0000 (12:26 +0200)]
dnd: Add addClickAction() method

The events that the draggable uses to initiate a drag operation
are the same as the ones a click action consumes for clicks.

It is still possible to combine the two, but it's finicky and far
from being straight-forward. To make this easier, add a dedicated
addClickAction() method to draggables that takes care of the
setup before adding the action to the draggable actor.

In the longer term, we'll want to turn DND into an action, and
have something like GTK's gesture group to allow combining actions
that would otherwise step on each other's toes.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/2742>

3 years agopopupMenu: Replace event handlers with click action
Florian Müllner [Wed, 19 Apr 2023 12:11:09 +0000 (14:11 +0200)]
popupMenu: Replace event handlers with click action

Actions provide a higher-level API than event handlers, not unlike
GTK's event controllers (albeit less complete). Allowing them to
take care of the low-level bits where possible is generally a good
idea.

Menu items are a very straight-forward case, with a good amount
of code saving, so port them over.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/2742>

3 years agopanel: Drop unnecessary captured-event handler
Florian Müllner [Thu, 20 Apr 2023 11:40:40 +0000 (13:40 +0200)]
panel: Drop unnecessary captured-event handler

The handler dates back to commit 50f248ec5b2a0 in 2011, and is
part of the original hack of making the activities button a
PanelMenu.Button while suppressing its menu.

By now, panel buttons without a menu have been properly supported
for years, but somehow that bit of the hack stuck around, even though
it is no longer actually needed (probably since the introduction of
DummyMenu.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/2741>

3 years agoBump version to 44.1
Florian Müllner [Sun, 23 Apr 2023 20:27:55 +0000 (22:27 +0200)]
Bump version to 44.1

Update NEWS.

3 years agodocs: Remove invalid XInclude
Bobby Rong [Mon, 24 Apr 2023 02:55:22 +0000 (10:55 +0800)]
docs: Remove invalid XInclude

This unbreaks the -Dgtk_doc=true build.

Closes: https://gitlab.gnome.org/GNOME/gnome-shell/-/issues/6486
Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/2749>

3 years agostatus/volume: Ignore capitalization for headphone detection
Florian Müllner [Sun, 12 Mar 2023 21:55:45 +0000 (22:55 +0100)]
status/volume: Ignore capitalization for headphone detection

When we can't detect a headphone by form factor, we do a string
match on the port name. A match on 'Headphone' isn't less likely
to be valid than a match on 'headphone', so make sure we ignore
capitalization.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/2691>

3 years agoci: Don't ignore init.js
Florian Müllner [Thu, 17 Feb 2022 23:42:49 +0000 (00:42 +0100)]
ci: Don't ignore init.js

Unlike js102, the gjs-check-syntax script supports modules, so
there's no longer a reason for ignoring the file.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/2193>

3 years agoci: Update JS tooling
Florian Müllner [Thu, 17 Feb 2022 21:54:22 +0000 (22:54 +0100)]
ci: Update JS tooling

Provided we use the correct version of the SpiderMonkey shell, we
can perform checks using the same engine that is used by gjs.

However some engine features are opt-in, so the set of features enabled
by gjs and js102 may differ. The obvious option for avoiding this is
replacing js102 with gjs for tests.

For that reason the check-potfiles.js script has been ported to gjs
and a second (simpler) script to replace `js102 --compileonly` was
added. This work happened in a separate repository to make sharing
between different JS-based projects easier.

Update the CI image to pull in those scripts and include gjs.

This will also address the issue that `js102 --compileonly` does not
handle modules.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/2193>

3 years agoci: Remove duplicated cleanup
Florian Müllner [Thu, 17 Feb 2022 22:30:36 +0000 (23:30 +0100)]
ci: Remove duplicated cleanup

The template will already call `dnf clean all` after processing
packages and the script, so no need for us to call it as well.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/2193>

3 years agoautorunManager: Add missing await keyword
Balló György [Fri, 21 Apr 2023 08:02:16 +0000 (08:02 +0000)]
autorunManager: Add missing await keyword

This fixes a regression introduced in commit c6861c0a3d3db3b3f4343e38b08b48d18803b2fe

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/2745>

3 years agoci: Update JS image
Florian Müllner [Tue, 14 Mar 2023 12:17:12 +0000 (13:17 +0100)]
ci: Update JS image

The image hasn't been updated for over a year, and it's now based
on an unsupported distro version. Jump directly to F38 which has
just been released.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/2695>

3 years agoci: Drop version suffix from job name
Florian Müllner [Tue, 14 Mar 2023 12:25:49 +0000 (13:25 +0100)]
ci: Drop version suffix from job name

We don't build images for multiple distro versions, so all it does
is making version bumps more finicky.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/2695>

3 years agosearch: Expand search results view
Sebastian Keller [Thu, 20 Apr 2023 23:08:23 +0000 (01:08 +0200)]
search: Expand search results view

Otherwise the search results can end up only as large as their content.

Closes: https://gitlab.gnome.org/GNOME/gnome-shell/-/issues/5924
Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/2744>

3 years agoci: Make fringe meson-install arguments optional
Florian Müllner [Mon, 20 Mar 2023 01:01:33 +0000 (02:01 +0100)]
ci: Make fringe meson-install arguments optional

Both the subdir and prepare arguments are very specific to
building the extensions-tool subproject stand-alone. In order
to make the script more generic, turn those required arguments
into optional --subdir and --prepare ones.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/2712>

3 years agoci: Add --help option to meson-install script
Florian Müllner [Mon, 20 Mar 2023 00:55:59 +0000 (01:55 +0100)]
ci: Add --help option to meson-install script

It's not really necessary in an internal script, but it's easy
enough and doesn't hurt *shrug*

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/2712>

3 years agoci: Use built-in option parsing in meson-install
Florian Müllner [Mon, 20 Mar 2023 00:41:15 +0000 (01:41 +0100)]
ci: Use built-in option parsing in meson-install

This is less concise than the current ad-hoc parsing, but gets
us error handling ("unknown option --foo") and is easier to
extend.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/2712>

3 years agoci: Make sure to always clear meson-install checkout dir
Florian Müllner [Tue, 21 Mar 2023 00:00:07 +0000 (01:00 +0100)]
ci: Make sure to always clear meson-install checkout dir

We currently remove the directory at the end of the script, but
that code is only reached when all previous operations were
successful.

Address this by first using an absolute directory path in /tmp
instead of a "random" location based on the CWD, then set a trap
to remove it on exit.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/2712>

3 years agoci: Fix meson-install usage check
Florian Müllner [Mon, 20 Mar 2023 00:47:30 +0000 (01:47 +0100)]
ci: Fix meson-install usage check

The script has four mandatory arguments, and also accepts optional
build options that are passed on to meson. Checking for the number
of arguments *before* filtering out the optional ones means that

`./install-meson-project.sh -Done=1 -Dtwo=2 -Dthree=3 -Dfour=4`

is considered valid, even though not a single required argument
is passed.

Fix this by filtering out the arguments before doing the usage
check. As it is a nice touch to have usage information at the
top of the script, move the message into a usage() function at
the top.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/2712>

3 years agoci: Stop running meson without subcommand
Florian Müllner [Mon, 20 Mar 2023 00:40:43 +0000 (01:40 +0100)]
ci: Stop running meson without subcommand

Invoking meson with no command is deprecated in favor of
`meson setup`.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/2712>

3 years agosubprojects: Stop running meson without subcommand
Florian Müllner [Wed, 22 Mar 2023 13:00:56 +0000 (14:00 +0100)]
subprojects: Stop running meson without subcommand

Invoking meson with no command is deprecated in favor of
`meson setup`.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/2712>

3 years agoshell-app-system: Give priority to .desktop IDs that should be shown
Marco Trevisan (Treviño) [Thu, 23 Mar 2023 23:25:06 +0000 (00:25 +0100)]
shell-app-system: Give priority to .desktop IDs that should be shown

If we have multiple desktop ID's that share the same startup-wm class
and none of them is actually matching the desktop-id, then we should
exclude the ones that should not be shown in the current desktop.

This will help preventing cases such as the previous one in case no
desktop file ID would match the startup-wm-class exactly.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/2721>

3 years agoshell-app-system: Do not compare startup-wm classes with full desktop IDs
Marco Trevisan (Treviño) [Thu, 23 Mar 2023 23:02:16 +0000 (00:02 +0100)]
shell-app-system: Do not compare startup-wm classes with full desktop IDs

When fetching the desktop ids into a map of startup-wm classes we meant
to give the ones that match the desktop ID more priority, however
this did not happen because we were always comparing a desktop
file id, including the `.desktop` suffix, with a wm-class that generally
does not include that.

This is the case of gnome-system-monitor, that provides two desktop
files, one of which is OnlyShowIn=KDE but both have the same
StartupWMClass and thus the first parsed is preferred, even though its
desktop-id is gnome-system-monitor-kde.

As per this, remove the .desktop suffix when comparing it with the
startup-wm-class, keeping the old check just in case.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/2721>

3 years agoscripting: Return promise in helper window wait functions
Jonas Ådahl [Tue, 18 Apr 2023 14:27:58 +0000 (16:27 +0200)]
scripting: Return promise in helper window wait functions

Otherwise they won't wait when doing e.g. `await waitTestWindows();`.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/2722>

3 years agotests/closeWithActiveWindows: Also test input method tear down
Jonas Ådahl [Fri, 24 Mar 2023 10:28:11 +0000 (11:28 +0100)]
tests/closeWithActiveWindows: Also test input method tear down

From a test case perspective, it's simple - make the test window have a
text entry, and make sure we have a virtual keyboard making GTK3 enable
the text entry. This would without a fix trigger
https://gitlab.gnome.org/GNOME/gnome-shell/-/issues/6535.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/2722>

3 years agojs/main: Unset input method on shutdown
Jonas Ådahl [Fri, 24 Mar 2023 10:26:49 +0000 (11:26 +0100)]
js/main: Unset input method on shutdown

After shutdown, the Javascript context will be disposed, so we must make
sure we remain the active input method after this point.

Closes: https://gitlab.gnome.org/GNOME/gnome-shell/-/issues/6535
Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/2722>

3 years agoperf-helper: Allow creating window with text input
Jonas Ådahl [Fri, 24 Mar 2023 10:26:05 +0000 (11:26 +0100)]
perf-helper: Allow creating window with text input

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/2722>

3 years agotests/perf: Add test for shutdown with open window
Jonas Ådahl [Fri, 24 Mar 2023 09:22:41 +0000 (10:22 +0100)]
tests/perf: Add test for shutdown with open window

This would without the applied fix trigger
https://gitlab.gnome.org/GNOME/gnome-shell/-/issues/6536.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/2722>

3 years agoscripting: Allow avoiding exiting perf helper
Jonas Ådahl [Fri, 24 Mar 2023 09:21:38 +0000 (10:21 +0100)]
scripting: Allow avoiding exiting perf helper

This will help creating test cases where windows are open during
shutdown.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/2722>

3 years agoshell: Make singletons owned by ShellGlobal
Jonas Ådahl [Fri, 24 Mar 2023 09:16:07 +0000 (10:16 +0100)]
shell: Make singletons owned by ShellGlobal

This means also means they will be cleaned up when disposing
ShellGlobal, which will then mean signals tied to the GObject lifetime
will be disconnected.

Closes: https://gitlab.gnome.org/GNOME/gnome-shell/-/issues/6536
Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/2722>

3 years agoshell/window-tracker: Disconnect signals on disposal
Jonas Ådahl [Fri, 24 Mar 2023 09:18:08 +0000 (10:18 +0100)]
shell/window-tracker: Disconnect signals on disposal

We always leak this, so this has no effect right now, but will in a
follow up commit.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/2722>

3 years agopopupMenu: Only activate items that still have the pointer
Florian Müllner [Wed, 19 Apr 2023 10:08:53 +0000 (12:08 +0200)]
popupMenu: Only activate items that still have the pointer

After the introduction of implicit grabs in Clutter, a release
event will now always be delivered to the actor that received
the corresponding press event.

This results in surprising behavior when moving the pointer
while pressed, as a button release will always activate the
original item, even when the pointer moved to a different item
or outside the menu altogether.

Address this by checking the hover state (that is, whether
the item contains the pointer actor) before activating it.

https://gitlab.gnome.org/GNOME/gnome-shell/-/issues/6606

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/2740>

3 years agoUpdate German translation
Philipp Kiemle [Thu, 20 Apr 2023 09:01:27 +0000 (09:01 +0000)]
Update German translation

3 years agoUpdate Basque translation
Asier Sarasua Garmendia [Wed, 19 Apr 2023 17:36:25 +0000 (17:36 +0000)]
Update Basque translation

3 years agowindowPreview: Ignore leave events after being destroyed
Sebastian Keller [Mon, 17 Apr 2023 11:38:23 +0000 (13:38 +0200)]
windowPreview: Ignore leave events after being destroyed

When a WindowPreview is being destroyed, the class default handler for
the `destroy` signal is responsible for destroying its child actors.
This happens after the emission of the `destroy` signal, i.e. after
`WindowPreview::_onDestroy()` has been run.

The destruction of the WindowPreview's child actors now triggers a
re-pick, but due to WindowPreview having already being marked as
`CLUTTER_IN_DESTRUCTION`, it will not be picked, resulting in a `leave`
event if the cursor was on top of the WindowPreview at the time
`destroy()` was called on it.

So this leads to `WindowPreview::vfunc_leave_event()` being run after
`WindowPreview::_onDestroy()`, which means the idle started by the leave
event handler will not be removed and ends up accessing actors after
they have already been destroyed.

Closes: https://gitlab.gnome.org/GNOME/gnome-shell/-/issues/5512
Closes: https://gitlab.gnome.org/GNOME/gnome-shell/-/issues/6065
Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/2738>

3 years agodash: Do not destroy a dash label twice
Marco Trevisan (Treviño) [Mon, 17 Apr 2023 17:53:34 +0000 (19:53 +0200)]
dash: Do not destroy a dash label twice

Dash labels are children of the main uiGroup and so could be destroyed
before their logical-owner DashItemContainer during shutdown.

This implies that we could destroy them twice. To avoid this, unset them
when destroyed.

This is mostly visible when using dash-to-dock, but it's still
technically possible with upstream code:

** Message: 19:57:49.847: Shutting down GNOME Shell

(gnome-shell:2788214): Gjs-CRITICAL **: 19:57:49.933: Object St.Label
 (0x55b33668eab0), has been already disposed — impossible to access it.
 This might be caused by the object having been destroyed from C code using
something such as destroy(), dispose(), or remove() vfuncs.
  == Stack trace for context 0x55b3345fd3d0 ==
  #0   7ffeabd810d0 b   /data/GNOME/gnome-shell/js/ui/dash.js:86
  #1   55b335b62f88 i   /data/GNOME/JHBUILD_HOME/.local/share/gnome-shell/extensions/dash-to-dock@micxgx.gmail.com/docking.js:487
  #2   7ffeabd838f0 b   self-hosted:1121
  #3   55b335b62ec8 i   /data/GNOME/gnome-shell/js/ui/layout.js:240

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/2739>

3 years agopanelMenu: Fix keynav of menu-less buttons
Florian Müllner [Wed, 8 Mar 2023 03:48:05 +0000 (04:48 +0100)]
panelMenu: Fix keynav of menu-less buttons

The left/right navigation between top bar buttons is usually
handled by a key-press handler on the button's menu.

However when a DummyMenu is used, the button itself serves as
fake menu actor and will get grabbed when "opening" the menu.
Due to that grab, the event is not propagated to the stage,
and regular keynav does not work.

To avoid the focus getting stuck in that case, add an explicit
key-press handler that bypasses the grab.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/2734>

3 years agomessageTray: Don't set _notificationRemoved if destroyed notification is queued
msizanoen1 [Sat, 15 Apr 2023 08:55:47 +0000 (15:55 +0700)]
messageTray: Don't set _notificationRemoved if destroyed notification is queued

When the user clears all notifications from the notification menu UI, it's
possible for a queued notification to be destroyed after the currently displayed
notification. The removal of the currently displayed notification is not
processed until the notification menu is closed (due to `this._bannerBlocked`).
By then, it's possible that `_notificationRemoved` has already been overwritten
when `_onNotificationDestroy` is invoked with another (queued) notification.

This eventually results in a notification banner that cannot be removed by the
user as the notification object needed to do so has already been destroyed.

Fix this by only assigning to `_notificationRemoved` if `this._notification ==
notification`.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/2736>

3 years agost/icon-theme: Fix small memory leak when checking fallback theme path
Sebastian Keller [Sun, 16 Apr 2023 21:23:11 +0000 (23:23 +0200)]
st/icon-theme: Fix small memory leak when checking fallback theme path

This is a small one time leak if there is more than one entry in the
search path due to multiple iterations overwriting the old pointer
before finally going out of scope.

Fixes: 934faaace ("st/icon-theme: Start using g_autofree")
Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/2737>

3 years agoUpdate Hungarian translation
Balázs Úr [Thu, 13 Apr 2023 21:40:08 +0000 (21:40 +0000)]
Update Hungarian translation

3 years agoUpdate Galician translation
Fran Dieguez [Thu, 13 Apr 2023 16:59:21 +0000 (16:59 +0000)]
Update Galician translation

3 years agoUpdate Hebrew translation
Yaron Shahrabani [Thu, 13 Apr 2023 11:29:58 +0000 (11:29 +0000)]
Update Hebrew translation

3 years agoUpdate Turkish translation
Sabri Ünal [Wed, 12 Apr 2023 20:12:31 +0000 (20:12 +0000)]
Update Turkish translation

3 years agoUpdate Slovenian translation
Martin [Wed, 12 Apr 2023 19:49:42 +0000 (19:49 +0000)]
Update Slovenian translation

3 years agoUpdate Chinese (China) translation
Boyuan Yang [Mon, 10 Apr 2023 19:42:48 +0000 (19:42 +0000)]
Update Chinese (China) translation

3 years agoUpdate Persian translation
Danial Behzadi [Mon, 10 Apr 2023 16:40:32 +0000 (16:40 +0000)]
Update Persian translation

3 years agoUpdate Lithuanian translation
Aurimas Černius [Mon, 10 Apr 2023 11:05:52 +0000 (11:05 +0000)]
Update Lithuanian translation

3 years agoUpdate Serbian translation
Марко Костић [Sun, 9 Apr 2023 09:11:45 +0000 (09:11 +0000)]
Update Serbian translation

3 years agoUpdate Russian translation
Aleksandr Melman [Sat, 8 Apr 2023 11:48:40 +0000 (11:48 +0000)]
Update Russian translation

3 years agoUpdate Bulgarian translation
Alexander Shopov [Fri, 7 Apr 2023 16:47:44 +0000 (16:47 +0000)]
Update Bulgarian translation

3 years agoUpdate Bulgarian translation
Alexander Shopov [Fri, 7 Apr 2023 16:31:29 +0000 (16:31 +0000)]
Update Bulgarian translation

3 years agoUpdate Polish translation
Piotr Drąg [Thu, 6 Apr 2023 12:37:11 +0000 (14:37 +0200)]
Update Polish translation

3 years agoUpdate Indonesian translation
Kukuh Syafaat [Thu, 6 Apr 2023 11:04:13 +0000 (11:04 +0000)]
Update Indonesian translation

3 years agost/icon-theme: Fix transparent colors in symbolic SVGs
Florian Müllner [Wed, 5 Apr 2023 14:02:29 +0000 (16:02 +0200)]
st/icon-theme: Fix transparent colors in symbolic SVGs

When loading a symbolic SVG, the original file is wrapped in
a header that includes a generated stylesheet with the
appropriate colors, plus an overall opacity.

The opacity value is clamped to values between 0 and 1, which
directly matched the alpha field of the GdkRGBA type. However
since we moved to StIconColors/ClutterColor, the alpha field
is now in the range [0..255], any alpha value other than 0 now
results in full opacity.

To fix, translate the [0..255] integer into a [0..1] double
before using it as opacity.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/2731>

3 years agomisc/objectManager: Fix emission of object-removed signal
Jonas Dreßler [Mon, 3 Apr 2023 14:12:59 +0000 (16:12 +0200)]
misc/objectManager: Fix emission of object-removed signal

Emitting this signal is broken right now: We check for a length of 0 on
this._objects[objectPath], but the
`this._objects[objectPath][interfaceName] = null` we do before the
check doesn't actually remove the key, it only sets the value to null,
leaving the key around and thus the amount of entries in the object doesn't
change.

Fix that by using the delete statement instead, "delete" properly removes
the key and thus affects the amount of entries in the object, making our
length === 0 check effective.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/2730>

3 years agoUpdate Swedish translation
Anders Jonsson [Wed, 5 Apr 2023 16:34:30 +0000 (16:34 +0000)]
Update Swedish translation

3 years agoUpdate Friulian translation
Fabio Tomat [Wed, 5 Apr 2023 15:22:38 +0000 (15:22 +0000)]
Update Friulian translation

3 years agoUpdate Portuguese translation
Hugo Carvalho [Wed, 5 Apr 2023 09:41:45 +0000 (09:41 +0000)]
Update Portuguese translation

3 years agopowerProfiles: Rename "Power Profiles" to "Power Mode"
Automeris naranja [Thu, 16 Mar 2023 19:32:12 +0000 (16:32 -0300)]
powerProfiles: Rename "Power Profiles" to "Power Mode"

This changes renames the power profiles submenu title to "Power Mode",
making it consistent with the toggle title.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/2697>

3 years agoUpdate Ukrainian translation
Yuri Chornoivan [Tue, 4 Apr 2023 18:34:12 +0000 (18:34 +0000)]
Update Ukrainian translation

3 years agostatus/network: Improve a11y of wireless network items
Lukáš Tyrychtr [Fri, 24 Mar 2023 10:02:33 +0000 (11:02 +0100)]
status/network: Improve a11y of wireless network items

This MR does the following:
* Allows a screen reader user to determine the currently connected network
* Allwos a screen reader to read the security status and signal strength

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/2724>

3 years agoUpdate Persian translation
MohammadSaleh Kamyab [Mon, 3 Apr 2023 13:10:24 +0000 (13:10 +0000)]
Update Persian translation

3 years agoUpdate Russian translation
Aleksandr Melman [Mon, 3 Apr 2023 07:25:56 +0000 (07:25 +0000)]
Update Russian translation

3 years agoUpdate Bulgarian translation
Alexander Shopov [Thu, 30 Mar 2023 12:04:36 +0000 (12:04 +0000)]
Update Bulgarian translation

3 years agoappFavorite: Add missing .desktop extension for simplescan
Jordan Petridis [Wed, 29 Mar 2023 13:52:16 +0000 (13:52 +0000)]
appFavorite: Add missing .desktop extension for simplescan

Followup to cbecc1dbfde2de34044a02e2910bf4705ea891ae

One line changes are hard.. Was too focused on copy pasting the id
that I omitted the .desktop part.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/2728>

3 years agostyle: Light variant fixes and accommodations
Sam Hewitt [Thu, 13 Oct 2022 16:51:17 +0000 (14:21 -0230)]
style: Light variant fixes and accommodations

- Fixing things where the wrong colors bleed through or the colors are inconsistent.
- expand colors definitions for system colours
- add overrides to styles for overview and lockscreen
- update drawing functions to better use new colours
- rework entry drawing css

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/2515>

3 years agoUpdate French translation
Guillaume Bernard [Tue, 28 Mar 2023 10:27:26 +0000 (10:27 +0000)]
Update French translation

3 years agoextensionDownloader: Check schemadir existence and type
Andy Holmes [Mon, 27 Mar 2023 19:41:50 +0000 (12:41 -0700)]
extensionDownloader: Check schemadir existence and type

When checking for an extension schemadir, an error will be thrown if
`query_info()` is used and the directory is missing.

Catch the case of a missing directory, but throw an error if the
path exists as a non-directory type.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/2727>

3 years agostatus/network: Fix a11y names for VPN connection menu items
Lukáš Tyrychtr [Thu, 23 Mar 2023 13:59:01 +0000 (14:59 +0100)]
status/network: Fix a11y names for VPN connection menu items

Because of an omission, the VPN menu items never got its a11y name,
so a screen reader was reporting that item only as a plain item without
any label.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/2720>

3 years agoUpdate Chinese (China) translation
Boyuan Yang [Mon, 27 Mar 2023 16:37:43 +0000 (16:37 +0000)]
Update Chinese (China) translation

3 years agoquickSettings: Fix icon-name construct property in menu toggles
Florian Müllner [Sat, 25 Mar 2023 21:55:33 +0000 (22:55 +0100)]
quickSettings: Fix icon-name construct property in menu toggles

Both :icon-name and :gicon are propagated to the internal QuickToggle
with property bindings. However the bindings are set up in the wrong
order:

:icon-name is a convenience property to set :gicon to a ThemedIcon
of the given name. That means binding :icon-name first will correctly
set the underlying StIcon's :gicon, but then the :gicon binding will
set it again to null.

Fix this by swapping the order in which the bindings are set up,
so that it works for both properties.

https://gitlab.gnome.org/GNOME/gnome-shell/-/issues/6542

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/2726>

3 years agoUpdate Turkish translation
Sabri Ünal [Mon, 27 Mar 2023 12:10:40 +0000 (12:10 +0000)]
Update Turkish translation

3 years agoUpdate Dutch translation
Nathan Follens [Sun, 26 Mar 2023 16:27:37 +0000 (16:27 +0000)]
Update Dutch translation

3 years agoUpdate Basque translation
Asier Sarasua Garmendia [Sun, 26 Mar 2023 08:23:05 +0000 (08:23 +0000)]
Update Basque translation

3 years agoscreenshot: Fix broken GLib.Error.matches call
Adam Williamson [Sat, 25 Mar 2023 16:19:41 +0000 (09:19 -0700)]
screenshot: Fix broken GLib.Error.matches call

You have to pass a domain and an error code, not just an error
code.

Fixes https://gitlab.gnome.org/GNOME/gnome-shell/-/issues/6540

Signed-off-by: Adam Williamson <awilliam@redhat.com>
Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/2725>